home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / modules / nessus-2.2.8.mo / usr / lib / nessus / plugins / ircd.nasl < prev    next >
Text File  |  2005-03-31  |  2KB  |  86 lines

  1. #
  2. # Copyright 2002 by Michel Arboi <arboi@alussinan.org>
  3. #
  4. # This script is released under the GNU Public Licence
  5. #
  6.  
  7. if(description)
  8. {
  9.  script_id(11156);
  10.  script_version ("$Revision: 1.5 $");
  11.  
  12.  name["english"] = "IRC daemon identification";
  13.  script_name(english:name["english"]);
  14.  
  15.  desc["english"] = "
  16. This script determines the version of the IRC daemon
  17.  
  18. Risk factor : None";
  19.  
  20.  script_description(english:desc["english"]);
  21.  
  22.  summary["english"] = "IRCD version";
  23.  script_summary(english:summary["english"]);
  24.  
  25.  script_category(ACT_GATHER_INFO);
  26.  
  27.  script_copyright(english:"This script is Copyright (C) 2002 Michel Arboi");
  28.  family["english"] = "General";
  29.  script_family(english:family["english"]);
  30.  
  31.  script_dependencie("find_service.nes", "find_service2.nasl");
  32.  script_require_ports("Services/irc", 6667);
  33.  exit(0);
  34. }
  35.  
  36. #
  37.  
  38. port = get_kb_item("Services/irc");
  39. if (!port) port = 6667;
  40. if(! get_port_state(port)) exit(0);
  41.  
  42. soc = open_sock_tcp(port);
  43. if (! soc) exit(0);
  44.  
  45. nick = NULL;
  46. for (i=0;i<9;i++)
  47.  nick += raw_string (0x41 + (rand() % 10));
  48.  
  49. user = nick;
  50.  
  51. req = string("NICK ", nick, "\r\n", 
  52.     "USER ", nick, " ", this_host_name(), " ", get_host_name(), 
  53.     " :", user, "\r\n");
  54. send(socket: soc, data: req);
  55. while ( a = recv_line(socket:soc, length:4096) )
  56. {
  57.  #display(a);
  58.  if ( a =~ "^PING." )
  59.  {
  60.   a = ereg_replace(pattern:"PING", replace:"PONG", string:a);
  61.   send(socket:soc, data:a);
  62.  }
  63. }
  64.  
  65. send(socket: soc, data: string("VERSION\r\n"));
  66. v = "x";
  67. while ((v) && ! (" 351 " >< v)) v = recv_line(socket: soc, length: 256);
  68. #display(v);
  69. send(socket: soc, data: string("QUIT\r\n"));
  70. close(soc);
  71.  
  72. if (!v) exit(0);
  73.  
  74. k = string("irc/banner/", port);
  75. set_kb_item(name: k, value: v);
  76.  
  77. # Answer looks like:
  78. # :irc.sysdoor.com 351 nessus123 2.8/csircd-1.13. irc.sysdoor.com :http://www.codestud.com/ircd
  79. v2 = ereg_replace(string: v, pattern: ": *[^ ]+ +[0-9]+ +[a-zA-Z0-9]+ +([^ ]+) +[^ ]+ *:(.*)", replace: "\1 \2");
  80. # display(v2);
  81. if (v == v2) exit(0);
  82.  
  83. m = string("The IRC server version is : ", v2);
  84. security_note(port: port, data: m);
  85.  
  86.